package com.xuexiang.xui_lib.popup;

import ohos.agp.utils.Color;

/**
 * IGoodComponent
 *
 * @since 2021-03-09
 */
public interface IGoodComponent {
    /**
     * 默认移动距离
     */
    int DEFAULT_DISTANCE = 40;
    /**
     * Y轴移动起始偏移量
     */
    int DEFAULT_FROM_Y_DELTA = 0;
    /**
     * Y轴移动最终偏移量
     */
    int DEFAULT_TO_Y_DELTA = DEFAULT_DISTANCE;
    /**
     * 起始时透明度
     */
    float DEFAULT_FROM_ALPHA = 1.0f;
    /**
     * 结束时透明度
     */
    float DEFAULT_TO_ALPHA = 0.0f;
    /**
     * 动画时长
     */
    int DEFAULT_DURATION = 1000;
    /**
     * 默认文本
     */
    String DEFAULT_TEXT = "+2";
    /**
     * 默认文本字体大小
     */
    int DEFAULT_TEXT_SIZE = 16;
    /**
     * 默认文本字体颜色
     */
    Color DEFAULT_TEXT_COLOR = Color.BLACK;

    /**
     * 设置文本
     *
     * @param text text
     * @return return
     */
    IGoodComponent setTextX(String text);

    /**
     * 设置文本颜色
     *
     * @param color color
     * @return return
     */
    IGoodComponent setTextColor(int color);

    /**
     * 设置文本大小
     *
     * @param textSize
     * @return return
     */
    IGoodComponent setTextSize(int textSize);

    /**
     * 设置文本信息
     *
     * @param text text
     * @param textColor textColor
     * @param textSize textSize
     * @return return
     */
    IGoodComponent setTextInfo(String text, int textColor, int textSize);

    /**
     * 设置图片
     *
     * @param mediaId mediaId
     * @return return
     */
    IGoodComponent setBackgroundRes(int mediaId);

    /**
     * 设置移动距离
     *
     * @param distance distance
     * @return return
     */
    IGoodComponent setDistance(int distance);

    /**
     * 设置Y轴移动属性
     *
     * @param fromY fromY
     * @param toY toY
     * @return return
     */
    IGoodComponent setTranslateY(int fromY, int toY);

    /**
     * 设置透明度属性
     *
     * @param fromAlpha fromAlpha
     * @param toAlpha toAlpha
     * @return return
     */
    IGoodComponent setAlpha(float fromAlpha, float toAlpha);

    /**
     * 设置动画时长
     *
     * @param duration duration
     * @return return
     */
    IGoodComponent setDurationX(int duration);

    /**
     * 重置属性
     */
    void reset();

    /**
     * 展示
     */
    void show();
}
